home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Online / SpeakFreely / src / gsm / tst / gsm2cod.c < prev    next >
C/C++ Source or Header  |  2000-05-18  |  2KB  |  94 lines

  1. /*
  2.  * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
  3.  * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
  4.  * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
  5.  */
  6.  
  7. /*$Header: /home/kbs/jutta/src/gsm/gsm-1.0/tst/RCS/gsm2cod.c,v 1.1 1992/10/28 00:32:06 jutta Exp $*/
  8.  
  9. #include <stdio.h>
  10. #include <assert.h>
  11.  
  12. #include    "gsm.h"
  13. #include    "proto.h"
  14.  
  15. char  * pname;
  16.  
  17. int    debug      = 0;
  18. int    verbosity  = 0;
  19. int    error      = 0;
  20.  
  21. usage P0()
  22. {
  23.     fprintf(stderr, "Usage: %s [files...]\n", pname);
  24.     exit(1);
  25. }
  26.  
  27. void process P2((f, filename), FILE * f, char * filename)
  28. {
  29.     gsm_frame    buf;
  30.     gsm_signal    source[76];
  31.  
  32.     int        cc;
  33.     gsm        r;
  34.     int        nr=0;
  35.  
  36.     (void)memset(source, 0, sizeof(source));
  37.  
  38.     if (!(r = gsm_create())) {
  39.         perror("gsm_create");
  40.         error = 1;
  41.         return ;
  42.     }
  43.     gsm_option(r, GSM_OPT_VERBOSE, &verbosity);
  44.     for (;;) {
  45.         cc = fread((char *)buf, sizeof(buf), 1, f);
  46.         if (cc == 0) {
  47.             gsm_destroy(r);
  48.             return;
  49.         }
  50.         if (cc != 1) {
  51.             error = 1;
  52.             fprintf(stderr,
  53.                 "%s: %s -- trailing bytes ignored\n",
  54.                 pname, filename);
  55.             gsm_destroy(r);
  56.             return;
  57.         }
  58.  
  59.         gsm_explode(r, buf, source);
  60.         if (write(1, (char *)source, sizeof(source))!= sizeof(source)) {
  61.  
  62.             perror("write");
  63.             error = 1;
  64.             gsm_destroy(r);
  65.             return;
  66.         }
  67.     }
  68. }
  69.  
  70. main P2((ac, av), int ac, char ** av)
  71. {
  72.     int         opt;
  73.     extern char   * optarg;
  74.     extern int    optind;
  75.  
  76.     FILE        * f;
  77.  
  78.     if (!(pname = av[0])) pname = "gsm2cod";
  79.  
  80.     ac--;
  81.     av++;
  82.  
  83.     if (!ac) process(stdin, "*stdin*");
  84.     else for (; *av; av++) {
  85.         if (!(f = fopen(*av, "r"))) perror(*av);
  86.         else {
  87.             process(f, *av);
  88.             fclose(f);
  89.         }
  90.     }
  91.  
  92.     exit(error);
  93. }
  94.